(1) window对象以及窗口框架
由于 window 对象同时扮演着 ECMAScript 中 Global 对象的角色,因此所有在全局作用域中声明
的变量、函数都会变成 window 对象的属性和方法。
(2) 窗口位置相对于top的位置
var leftPos=(typeof window.screenLeft=='number')?
window.screenLeft:window.screenX;
alert(leftPos);
(3)检查弹出窗口是否被屏蔽了
如果浏览器扩展或者其他程序阻止弹出窗口的话。我们用try catch来判断
var blocked = false;
try {
var wrpxWin = window.open("http://www.wrox.com", "_blank"); if (wrpxWin == null) {
blocked = true;//窗口被屏蔽了
}
} catch (ex) {
blocked = true;
}
if (blocked) {
alert("the popupp was bolcked!");
}
(4) 对话框
- alert
- confirm
- prompt
重点是第三种,让你输入一个对话框,并要求你输入数据。
var result = prompt("what is you name?", "");
if (result != null) {
alert("Welcome," + result);
}
(5) location对象
location 是最有用的 BOM 对象之一,它提供了与当前窗口中加载的文档有关的信息,还提供了一
些导航功能。事实上,location 对象是很特别的一个对象,因为它既是 window 对象的属性,也是
document 对象的属性;换句话说,window.location 和 document.location 引用的是同一个对象。
location 对象的用处不只表现在它保存着当前文档的信息,还表现在它将 URL 解析为独立的片段,让
开发人员可以通过不同的属性访问这些片段。
(6) navigator对象 检测插件
function hasPlugin(name) {
name = name.toLowerCase();
for (var i = 0; i < navigator.plugins.length; i++) {
if (navigator.plugins[i].name.toLowerCase().indexOf(name) > -1) {
return true;
}
return false;
}
}
alert(hasPlugin("Flash"));//检查是否有Flash插件
(6) history对象
浏览器内置对象,可以用它模仿前一个界面,后一个界面操作。
(7) 小结
浏览器对象模型(BOM)以 window 对象为依托,表示浏览器窗口以及页面可见区域。同时,window
对象还是 ECMAScript 中的 Global 对象,因而所有全局变量和函数都是它的属性,且所有原生的构造
函数及其他函数也都存在于它的命名空间下。本章讨论了下列 BOM 的组成部分。
1 在使用框架时,每个框架都有自己的 window 对象以及所有原生构造函数及其他函数的副本。
每个框架都保存在 frames 集合中,可以通过位置或通过名称来访问。
2 有一些窗口指针,可以用来引用其他框架,包括父框架。
3 top 对象始终指向最外围的框架,也就是整个浏览器窗口。
4 parent 对象表示包含当前框架的框架,而 self 对象则回指 window。
5 使用 location 对象可以通过编程方式来访问浏览器的导航系统。设置相应的属性,可以逐段
或整体性地修改浏览器的 URL。
6 调用 replace()方法可以导航到一个新 URL,同时该 URL 会替换浏览器历史记录中当前显示
的页面。
7 *navigator 对象提供了与浏览器有关的信息。到底提供哪些信息,很大程度上取决于用户的浏
览器;不过,也有一些公共的属性(如 userAgent)存在于所有浏览器中。
BOM 中还有两个对象:screen 和 history,但它们的功能有限。screen 对象中保存着与客户端
显示器有关的信息,这些信息一般只用于站点分析。history 对象为访问浏览器的历史记录开了一个
小缝隙,开发人员可以据此判断历史记录的数量,也可以在历史记录中向后或向前导航到任意页面。*